home *** CD-ROM | disk | FTP | other *** search
-
- September 2, 1994
-
- Using Willow with the Z39.50 Information Retrieval Protocol
-
- ##########################################################
- # Send your questions and comments to: #
- # willow@cac.washington.edu #
- # Or, if you wish to share them with other Willow users: #
- # willow-info@cac.washington.edu #
- ##########################################################
-
-
- Contents
- ========
- Section 0: Introduction
- Section 1: Searching with Z39.50
- Section 2: Configuring a Z39.50 Database
- Section 3: Specifying Z39.50 Attributes
- Section 4: MARC Record Formatting
- Section 5: Creating a Z39.50 Database
-
- Section 0: Introduction
- =======================
- This document provides information on how to configure and use
- Willow's Z39.50 driver. It is geared towards readers who are already
- fairly knowledgable about the Z39.50 information retrieval protocol.
- "Creating a Z39.50 Database" gives some pointers for finding a
- Willow/Z39.50 compatible server for your own data.
-
- Section 1: Searching with Z39.50
- ================================
- Although the mechanics of the Willow interface remain the same
- regardless of the driver used, there are differences in search
- strategy that your users need to keep in mind. This section
- outlines some of the more important search strategy considerations
- for databases which use the Z39.50 driver.
-
- Operators
- AND, OR, and AND-NOT are supported. If more than one field box
- contains search terms, the field boxes are connected by AND.
- Operators may not appear as the first element in any field box.
- Parentheses are not yet supported, nor are proximity operators.
-
- The assumed operator between words is usually AND (for the
- structure attribute WORD_LIST). Some indexes, like TITLE_WP, are
- phrases by default (structure attribute PHRASE). The completeness
- attribute affects whether the phrase has to be the complete
- subfield, complete field, or incomplete subfield. You can
- override structure, completeness, and position attributes on a
- per-field basis in the database configuration file, but your user
- cannot do so on a per-search basis.
-
- Regardless of your database configuration settings, the target's
- indexing practices will determine much of your search strategy.
- For example, OCLC WorldCat indexes subject headings as phrases at
- the complete subfield level. If you try to search "united states
- history" as a subject phrase (looking for documents with the
- subject heading "United States -- History"), you will fail since
- the indexing is
- history
- united states
-
- Similarly, "united states history" fails as a phrase search in
- WorldCat; there is no index for that database that spans subject
- subfields. Your only alternatives are to search "united states
- history" as a wordlist (which assumes AND between words), or to
- connect the subfield phrases with AND:
- united states AND history
-
- Relational Operators
- Many numeric fields support relational operators, listed below:
- = equal to
- < less than
- <= less than or equal to
- > greater than
- >= greater than or equal to
- ~= not equal to
- ^= not equal to
-
- Punctuation
- The search term itself must be a simple string without any special
- characters (like "=()<>", tabs or blanks). If you want to include
- these characters just put quotes marks around the search term. If
- you want a quote mark within a term surrounded by quote marks you
- must double the quote mark within the quotes. For example either
- query below
-
- 'hogan''s hero''s'
- or
- "hogan's hero's"
-
- would search for the string "hogan's hero's". A quote mark may be
- either a single quote (') or a double quote (").
-
- With some targets, punctuation (or the lack of it) is significant.
- Among the more common practices are:
-
- 1) requiring a comma between the surname and forename in an author
- search to indicate inverted order ("smith, john")
-
- 2) requiring that a comma not appear between the surname and
- forename in an author search ("smith john")
-
- 3) assuming the absence of a comma in an author search indicates
- direct order ("john smith")
-
- 4) requiring double dashes between subheadings in a subject phrase
- search (united states -- history)
-
- 5) requiring that double dashes not appear between subheadings in
- a subject phrase search (united states history)
-
- Truncation
- Use '#' or '?' to indicate right truncation. For example, "rat#"
- will match "rat", "rate", "ratio", etc. If you submit a truncated
- search term and the server does not support truncation, you should
- get an error message.
-
- A few servers truncate by default, so a search for "wash" also
- retrieves "washington". In these cases, you can use '|' to
- indicate no truncation. For example, "wash|" will retrieve "wash"
- only, even if the server truncates by default.
-
- You cannot override the target's default truncation setting in the
- database configuration file.
-
- Completeness
- Like truncation, the completeness attribute defines how your
- search terms are mapped at the target. In RLIN's "Avery Index to
- Architectural Periodicals", an author phrase search for "clark,
- sally" retrieves documents by "Clark, F. R. S.". RLIN's default
- behavior is to map the forename in an author search to the
- initials and to the spelled-out form. To get an exact personal
- name search, you must set the completeness attribute to CFLD
- (value = 3). Completeness is a database configuration per-field
- setting and cannot be changed on a per-search basis. Willow
- normally accepts the target's default.
-
-
- Section 2: Configuring a Z39.50 Database
- ========================================
- This section provides supplemental information to the "Database
- Configuration File" section of "Customization" for configuring
- Z39.50 databases. When using the Z39.50 driver, the following
- differences from that section apply.
-
- HostName
- A fully qualified domain name for the Z39.50 server host must
- be supplied with a "HostName" environment specifier. I.e.
- env_name = HostName
- env_val = fionavar.mit.edu
-
- Authenticated Databases
- Z39.50 databases which require user-authentication can be handled
- two different ways. They can be configured using the standard
- Willow method where the user enters and id and/or password (see
- the "Manual Login Databases" section of "Customization"), or you
- can hard-code the authentication information into the db.conf
- file, so the user does not have to type it.
-
- To use the latter method, use an "auth_id" environment specifier.
- I.e.
- env_name = auth_id
- env_val = uname/password
-
- The value is a user name and a password separated by a slash, with
- no whitespace.
-
- Z39.50Port
- If the Z39.50 service is not on the standard port (210) you can
- specify it:
- env_name = Z39.50Port
- env_val = 210
-
- t_field_cmd =
- Same as with other databases but additional functionality. In
- addition to simple index names like "TITLE" you can specify other
- Z39.50 attributes. See the "Specifying Z39.50 Attributes"
- section below.
-
- l_field_cmd = LANGUAGE = ENGLISH
- Is also a string that gets sent to the driver. It is a way of
- abbreviating a search. Just insert the search that would normally
- get submitted as a string here.
-
- list_name
- Specifies a browsable index using the browse translation
- functionality, which maps the Willow list-browsing protocol to the
- Z39.50 SCAN protocol (note that many servers do not support the
- SCAN protocol yet, and thus cannot support browsing). However,
- the translation feature has not yet been perfected, and browsing
- may be slow or even unsuccessful. To enable browsing for a
- particular index, add a corresponding list_name line after a
- t_field_cmd entry, specifying the Z39.50 use attribute (see below,
- "Specifying Z39.50 Attributes") For example, to browse the list of
- full titles,
- t_field_name = Exact Titles
- t_field_cmd = TITLE_WP
- list_name = TITLE_WP
-
- The translation may have problems with certain servers which use a
- collating sequence other than ASCII. The driver can support a
- psuedo-EBCDIC sequence for a browse list; this feature can be
- activated by appending :EBCDIC to the index name, e.g. list_name =
- TITLE:EBCDIC. ASCII is the default; specifying :ASCII explicitly
- is also allowed.
-
- SUTR Syntax
- To enable the use of SUTR (Simple Unstructured Text Record)
- records, include the following in the database entry.
- env_name = preferred syntax
- env_val = SUTR
-
- With SUTR records, the fields to display for the summary record
- are selected using the summary_fields field in a database entry.
- For example,
- summary_fields = TITLE,"AUTHOR:"
-
- will match any line beginning with TITLE or AUTHOR for summary display.
-
- Each field with an 'E' flag indicates that the summary display
- should end if this field is matched. If none of these fields are
- matched, the Summary_Field_Count tag will be used to determine how
- many fields will be used for the summary. It must be the last
- tag. I.e.
- summary_fields = Land boundaries:E,Coastline:E,Summary_Field_Count:8
-
- summary_fields, title_fields
- Willow requires title_fields and summary_fields to exist for each
- database, but for non-SUTR databases (i.e. MARC databases) their
- values are ignored by the Z39.50 driver so they can be left blank:
- title_fields =
- summary_fields =
-
- The contents of the title field displays are currently hard coded.
- For MARC databases the contents of the summary and full records
- are controlled by two files -- bibbrief for summaries, and bibfull
- for the full records. They are described more fully below, in
- "MARC Record Formatting".
-
- There is one bibbrief and bibfull file that comes stock with the
- z3950 driver (located in the willow/drivers/z3950.format
- directory). But you can specify a different file to look for with
- bib_suffix. For example:
- env_name = bib_suffix
- env_val = mitcat
-
- Would cause your database to look for bibbrief.mitcat and
- bibfull.mitcat before the standard bibbrief and bibfull files. If
- one or both files are not found, Willow silently defaults. If one
- or both are found, their contents OVERRIDES the default. So you
- should clone bibfull and bibbrief, make changes to the clone and
- install it as your custom file with the custom bib_suffix.
-
- extension_fields
- The z3950 driver supports the multi-media extension mechanism.
- The extension_label and extension_program operate in exactly the
- same way as other drivers. However, the extension_fields string
- is VERY DIFFERENT. It contains a mini bibfull file entry.
- Instead of whitespace, you use a comma. (You also must terminate
- the string with a comma. Perhaps a subsequent version will contain
- a smarter parser.) Here is an example of a Z39.50 extension entry:
- extension_fields = PATH:@,|,|,690,|,~,PAGE:@,|,|,505,|,~,
- extension_label = Article View
- extension_program = launcher
-
- When you press the button labeled "Article View" the 'launcher'
- program is started and receives a full record with the MARC 690
- field prefixed by "PATH: ", and the MARC 505 field prefixed by
- "PAGE: ". "MARC Record Formatting" below gives more information
- about setting up the MARC formatting description. The
- "Multi-Media Extensions" section of "Customization" gives more
- information on using the extension mechanism.
-
-
- Section 3: Specifying Z39.50 Attributes
- =======================================
- Z39.50 attribute-spec
- The jargon term we use for the complex specification of attributes
- that can be placed in db.conf for a z39.50 t_field_cmd is
- "attribute-spec". The attribute-spec specifies the search index
- (also known as the USE Attribute), and optionally can also set
- Structure, Completeness, and Positional attribute parameters.
-
- <attribute-spec> ::= <use>
- | <use>'/'<struct>
- | <use>'/'<struct>'/'<compl>
- | <use>'/'<struct>'/'<compl>'/'<pos>
-
- Where <use> is any name that matches the indexes defined for the
- database.
-
- The <struct> parameter names one of the valid structure attribute
- such as:
- <null>
- PHRASE
- WORD
- KEY
- YEAR
- DATE
- WORD_LIST
- WORD_ADJ
-
- The <compl> parameter names one of the completeness attributes:
- <null>
- ISUB Incomplete Subfield
- CSUB Complete Subfield
- CFLD Complete Field
-
- The <pos> parameter names one of the positional attributes:
- <null>
- FF First in Field
- FS First in subfield
- ANY any position in the field
-
- The database will associate defaults with USE Attributes so that
- an attribute spec will be fully specified without requiring the
- user to do so by hand.
-
- The <null> parameter means to put nothing between the slashes that
- delimit the parameter, and use the default.
-
- Example 1:
- t_field_cmd = SUBJECT/PHRASE/CSUB/ANY
-
- for a subject search that groups subfields as phrases, but will
- match the subfield phrase if it occurs anywhere in the field.
-
- Example 2:
- If the database had defined a default TITLE index as:
- use structure completeness position
- TITLE WORD_LIST CFLD ANY
-
- The following attribute-spec expressions are equivalent:
- TITLE
- TITLE/WORD_LIST
- TITLE/WORD_LIST/CFLD
- TITLE/WORD_LIST/CFLD/ANY
- TITLE//CFLD
- TITLE//CFLD/ANY
- TITLE///ANY
-
- The reason why so much redundancy is allowed, is to make it easy
- for a user to specify an attribute spec.
-
- NO whitespace should appear anywhere in an attribute spec. This
- is because the parser considers the attribute spec to be one
- token, and cuts it apart at the slashes.
-
- All of these parameterizations are controlled through arrays in
- src/z3950/api/client/bib1.h. So if you hear of a new kind of
- attribute, you can add it there.
-
- More Detailed Information on Z39.50 Attributes:
- The <struct> parameter names one of the valid structure attributes:
- ATTRIBUTE VALUE
- <null> 0
- PHRASE 1
- WORD 2
- KEY 3
- YEAR 4
- DATE 5
- WORD_LIST 6
- WORD_ADJ 7
- DATE_UNNORM 100
- NAME 101
- NAME_UNNORM 102
-
-
- The <compl> parameter names one of the completeness attributes:
-
- ATTRIBUTE VALUE MEANING
- <null> 0 Use target default
- ISUB 1 Incomplete Subfield
- CSUB 2 Complete Subfield
- CFLD 3 Complete Field
-
- The <pos> parameter names one of the positional attributes:
-
- ATTRIBUTE VALUE MEANING
- <null> 0 Use target default
- FF 1 First in field
- FS 2 First in subfield
- ANY 3 Any position
-
- The <use> parameter names one of the search indexes with its default
- attribute specs. ATTRIBUTES shows the defaults associated with each
- index for <struct>/<compl>/<pos>.
-
- INDEX VALUE ATTRIBUTES
- PERS_NAME 1 WORD_LIST/ISUB/ANY
- AUTHOR_PN 1 WORD_LIST/ISUB/ANY
- PERS_NAME_WP 1 PHRASE/ISUB/ANY
- PAP 1 PHRASE/ISUB/ANY
- CORPORATION 2 WORD_LIST/ISUB/ANY
- ORGANIZATION 2 WORD_LIST/ISUB/ANY
- CAP 2 PHRASE/ISUB/ANY
- CORPORATION_WP 2 PHRASE/ISUB/ANY
- CONFERENCE 3 WORD_LIST/ISUB/ANY
- CONFERENCE_WP 3 PHRASE/ISUB/ANY
- TITLE 4 WORD_LIST/ISUB/ANY
- TITLE_WP 4 PHRASE/ISUB/ANY
- TWP 4 PHRASE/ISUB/ANY
- SERIES 5 WORD_LIST/ISUB/ANY
- SERIES_WP 5 PHRASE/ISUB/ANY
- UNFRM_TITLE 6 WORD_LIST/ISUB/ANY
- UNFRM_TITLE_WP 6 PHRASE/ISUB/ANY
- ISBN 7 WORD/ISUB/FS
- ISSN 8 WORD/ISUB/FS
- LCCN 9 WORD/ISUB/FS
- BNBN 10 WORD/ISUB/FS
- BGFN 11 WORD/ISUB/FS
- LOCAL_NUM 12 WORD/ISUB/FS
- DEWEY_NUM 13 WORD/ISUB/FS
- UDC_NUM 14 WORD/ISUB/FS
- BLISS_NUM 15 WORD/ISUB/FS
- LC_CALL 16 WORD/ISUB/FS
- NLM_CALL 17 WORD/ISUB/FS
- NAL_CALL 18 WORD/ISUB/FS
- MOS_CALL 19 WORD/ISUB/FS
- LOCAL_CALL 20 WORD/ISUB/FS
- SUBJECT 21 WORD_LIST/ISUB/ANY
- SUBJECT_WP 21 PHRASE/ISUB/ANY
- SP 21 PHRASE/ISUB/ANY
- RAMEAU_SUBJ 22 WORD_LIST/ISUB/ANY
- RAMEAU_SUBJ_WP 22 PHRASE/ISUB/ANY
- BDI_SUBJ 23 WORD_LIST/ISUB/ANY
- BDI_SUBJ_WP 23 PHRASE/ISUB/ANY
- INSPEC_SUBJ 24 WORD_LIST/ISUB/ANY
- INSPEC_SUBJ_WP 24 PHRASE/ISUB/ANY
- MESH_SUBJ 25 WORD_LIST/ISUB/ANY
- MESH_SUBJ_WP 25 PHRASE/ISUB/ANY
- PA_SUBJ 26 WORD_LIST/ISUB/ANY
- PA_SUBJ_WP 26 PHRASE/ISUB/ANY
- LC_SUBJ 27 WORD_LIST/ISUB/ANY
- LC_SUBJ_WP 27 PHRASE/ISUB/ANY
- RVM_SUBJ 28 WORD_LIST/ISUB/ANY
- RVM_SUBJ_WP 28 PHRASE/ISUB/ANY
- LOCAL_SUBJ 29 WORD_LIST/ISUB/ANY
- LOCAL_SUBJ_WP 29 PHRASE/ISUB/ANY
- DATE 30 WORD_LIST/ISUB/ANY
- PUBDATE 31 WORD_LIST/ISUB/ANY
- ACQ_DATE 32 WORD_LIST/ISUB/ANY
- KEY_TITLE 33 WORD_LIST/ISUB/ANY
- KEY_TITLE_WP 33 PHRASE/ISUB/ANY
- COLL_TITLE 34 WORD_LIST/ISUB/ANY
- COLL_TITLE_WP 34 PHRASE/ISUB/ANY
- PLL_TITLE 35 WORD_LIST/ISUB/ANY
- PLL_TITLE_WP 35 PHRASE/ISUB/ANY
- COVER_TITLE 36 WORD_LIST/ISUB/ANY
- COVER_TITLE_WP 36 PHRASE/ISUB/ANY
- TITLEPAGE 37 WORD_LIST/ISUB/ANY
- TITLEPAGE_WP 37 PHRASE/ISUB/ANY
- CAPT_TITLE 38 WORD_LIST/ISUB/ANY
- CAPT_TITLE_WP 38 PHRASE/ISUB/ANY
- RUN_TITLE 39 WORD_LIST/ISUB/ANY
- RUN_TITLE_WP 39 PHRASE/ISUB/ANY
- SPINE_TITLE 40 WORD_LIST/ISUB/ANY
- SPINE_TITLE_WP 40 PHRASE/ISUB/ANY
- OVAR_TITLE 41 WORD_LIST/ISUB/ANY
- OVAR_TITLE_WP 41 PHRASE/ISUB/ANY
- FORMER_TITLE 42 WORD_LIST/ISUB/ANY
- FORMER_TITLE_WP 42 PHRASE/ISUB/ANY
- ABBR_TITLE 43 WORD_LIST/ISUB/ANY
- ABBR_TITLE_WP 43 PHRASE/ISUB/ANY
- EXPN_TITLE 44 WORD_LIST/ISUB/ANY
- EXPN_TITLE_WP 44 PHRASE/ISUB/ANY
- PRECIS_SUBJ 45 WORD_LIST/ISUB/ANY
- PRECIS_SUBJ_WP 45 PHRASE/ISUB/ANY
- RSWK_SUBJ 46 WORD_LIST/ISUB/ANY
- RSWK_SUBJ_WP 46 PHRASE/ISUB/ANY
- SUBDIV_SUBJ 47 WORD_LIST/ISUB/ANY
- SUBDIV_SUBJ_WP 47 PHRASE/ISUB/ANY
- NATBIB_NUM 48 WORD_LIST/ISUB/ANY
- NATBIB_NUM_WP 48 PHRASE/ISUB/ANY
- LGLDEP_NUM 49 WORD_LIST/ISUB/ANY
- LGLDEP_NUM_WP 49 PHRASE/ISUB/ANY
- GOVTPUB_NUM 50 WORD_LIST/ISUB/ANY
- GOVTPUB_NUM_WP 50 PHRASE/ISUB/ANY
- MUSIC_PUB 51 WORD_LIST/ISUB/ANY
- MUSIC_PUB_WP 51 PHRASE/ISUB/ANY
- DB_NUM 52 WORD_LIST/ISUB/ANY
- DB_NUM_WP 52 PHRASE/ISUB/ANY
- LOCAL_ID 53 WORD_LIST/ISUB/ANY
- LOCAL_ID_WP 53 PHRASE/ISUB/ANY
- LANGUAGE 54 WORD_LIST/ISUB/ANY
- GEO_CODE 55 WORD_LIST/ISUB/ANY
- INST_CODE 56 WORD_LIST/ISUB/ANY
- NAME_TITLE 57 WORD_LIST/ISUB/ANY
- NAME_TITLE_WP 57 PHRASE/ISUB/ANY
- GEO_NAME 58 WORD_LIST/ISUB/ANY
- GEO_NAME_WP 58 PHRASE/ISUB/ANY
- PUB_PLACE 59 WORD_LIST/ISUB/ANY
- CODEN 60 WORD/ISUB/FS
- MFORM_GEN 61 WORD_LIST/ISUB/ANY
- ABSTRACT 62 WORD_LIST/ISUB/ANY
- ABSTRACT_WP 62 PHRASE/ISUB/ANY
- NOTE 63 WORD_LIST/ISUB/ANY
- NOTE 63 PHRASE/ISUB/ANY
- PUB_TYPE_EXACT 500 PHRASE/ISUB/ANY
- AUTHOR_TITLE 1000 WORD_LIST/ISUB/ANY
- AUTHOR_TITLE_WP 1000 PHRASE/ISUB/ANY
- RECTYPE 1001 WORD_LIST/ISUB/ANY
- RECTYPE_WP 1001 PHRASE/ISUB/ANY
- NAME 1002 WORD_LIST/ISUB/ANY
- NAME_WP 1002 PHRASE/ISUB/ANY
- AUTHOR 1003 WORD_LIST/ISUB/ANY
- AUTHOR_WP 1003 PHRASE/ISUB/ANY
- PERS_AUTHOR 1004 WORD_LIST/ISUB/ANY
- PERS_AUTHOR_WP 1004 PHRASE/ISUB/ANY
- CORP_AUTHOR 1005 WORD_LIST/ISUB/ANY
- CORP_AUTHOR_WP 1005 PHRASE/ISUB/ANY
- CONF_AUTHOR 1006 WORD_LIST/ISUB/ANY
- CONF_AUTHOR_WP 1006 PHRASE/ISUB/ANY
- STANDARD_ID 1007 WORD_LIST/ISUB/ANY
- STANDARD_ID_WP 1007 PHRASE/ISUB/ANY
- LC_CHILD_SUBJ 1008 WORD_LIST/ISUB/ANY
- LC_CHILD_SUBJ_WP 1008 PHRASE/ISUB/ANY
- PERSNAME_SUBJ 1009 WORD_LIST/ISUB/ANY
- PERSNAME_SUBJ_WP 1009 PHRASE/ISUB/ANY
- TEXT_BODY 1010 WORD_LIST/ISUB/ANY
- TEXT_BODY_WP 1010 PHRASE/ISUB/ANY
- DB_ADD_TIME 1011 WORD_LIST/ISUB/ANY
- DB_ADD_TIME_WP 1011 PHRASE/ISUB/ANY
- DB_MOD_TIME 1012 WORD_LIST/ISUB/ANY
- DB_MOD_TIME_WP 1012 PHRASE/ISUB/ANY
- ATY_FMT_ID 1013 WORD_LIST/ISUB/ANY
- CONCEPT-TEXT 1014 WORD_LIST/ISUB/ANY
- CONCEPT-REF_WP 1014 PHRASE/ISUB/ANY
- DEFAULT 1016 WORD_LIST/ISUB/ANY
- DEFAULT_WP 1016 PHRASE/ISUB/ANY
- ANY 1017 WORD_LIST/ISUB/ANY
- ANY_WP 1017 PHRASE/ISUB/ANY
- SERVER-CHOICE 1017 WORD_LIST/ISUB/ANY
- SERVER-CHOICE_WP 1017 PHRASE/ISUB/ANY
- PUBLISHER 1018 WORD_LIST/ISUB/ANY
- RECORD-SOURCE 1019 WORD_LIST/ISUB/ANY
- EDITOR 1020 WORD_LIST/ISUB/ANY
- BIB-LEVEL 1021 WORD_LIST/ISUB/ANY
- GEO-CLASS 1022 WORD_LIST/ISUB/ANY
- INDEXED-BY 1023 WORD_LIST/ISUB/ANY
- MAP-SCALE 1024 WORD_LIST/ISUB/ANY
- MUSIC-KEY 1025 WORD_LIST/ISUB/ANY
- REL-PERIODICAL 1026 WORD_LIST/ISUB/ANY
- REPORT-NUMBER 1027 WORD_LIST/ISUB/ANY
- STOCK-NUMBER 1028 WORD_LIST/ISUB/ANY
- THEMATIC-NUMBER 1030 WORD_LIST/ISUB/ANY
- MATERIAL-TYPE 1031 WORD_LIST/ISUB/ANY
- DOC-ID 1032 WORD_LIST/ISUB/ANY
- HOST_ITEM 1033 PHRASE/ISUB/ANY
- CONTENT-TYPE 1034 WORD_LIST/ISUB/ANY
-
-
- Section 4: MARC Record Formatting
- =================================
- The contents of the summary and full records are decoded from the
- MARC format received from the Z39.50 server. How the user sees
- them is controlled by two files 'bibbrief' for summaries, and
- 'bibfull' for the full records.
-
- These two files get stored as bibbrief, and bibfull in the
- willow/drivers/z3950.format directory. You can have your own in your
- home directory as .bibfull and/or .bibbrief. As discussed in
- "Configuring a Z39.50 Database" it is also possible to specify
- alternate bibfull and bibbrief files for specific databases.
-
- Conventions: Comment lines are delimited by beginning and ending
- with a slash. If you want to put a space in your output, denote it
- with the at-sign -- '@'. The vertical bar '|' denotes "default"
- and is used to match anything. The tilde '~' means "not" and is
- used to match all but those named.
-
- The files consist of a set of tab-separated fields.
- short: The short name string to be displayed.
- ind1: MARC first indicator.
- ind2: MARC second indicator.
- tag: MARC tag.
- subfields: MARC subfields present.
-
- Control is exercised as follows, if the tag, indicators and
- subfields in the record match the contents of a line, the short
- name entry will be prepended and the data from the record will be
- displayed. In bibbrief, the summary field tells how wide to make
- the field in the title display.
-
- Bibbrief Format Examples
- /short ind1 ind2 tag subfields summary /
- AU:@ | | 100 | 20
- Twenty characters out of the author appear in the title line
- display. All subfields are displayed.
-
- SU:@ | | 600 ~w ~
- Subject does not appear in the title line display. All subfields
- except w are displayed.
-
- Bibfull Format Examples
- /short ind1 ind2 tag subfields summary /
- AU:@ | | 100 ~w ~
-
- Special Rules
- Following are the special rules that are currently available.
-
- R1: Used to extract holdings data from the MIT catalog.
- Parameters
- 0 "R1"
-
- R2: Special labels for MeSH subject headings.
- Parameters
- 0 "R2"
-
- R3-R7: These varargs rules use '!' to separate the arguments. Each
- rule must be terminated with a '!'.
-
- R3: Substitutes a text string for the label defined in the bib file.
- Parameters
- 0 "R3"
- 1 (decimal) field tag
- 2 string for first occurrence of MARC field
- (if null, use bibfile label)
- 3 string for second occurrence of MARC field
- . .
- : :
- n string for n-1th occurrence of MARC field
-
- Example: AUTHOR:@ | | R3!700!!OTHER@AUTHORS:@! | ~
- will display
- 700 1 |a Mahin, John Lee, |d 1907-
- 700 10 |a Arthur, Robert.
- 700 10 |a Wayne, John, |d 1907-1979.
- 700 10 |a Ross, Katherine.
- as:
- AUTHOR: Mahin, John Lee, 1907-
- OTHER AUTHORS: Arthur, Robert.
- Wayne, John, 1907-1979.
- Ross, Katherine.
-
- R4: Extracts data from a fixed field
- Parameters
- 0 "R4"
- 1 (decimal) field tag
- 2 (decimal/hex/octal) beginning character offset
- 3 (decimal/hex/octal) ending character offset
- (leading 0x = hex; leading 0 = octal)
- must be >= beginning offset
-
- Example: OCLC@NO:@ | | R4!001!0!10! | ~
- will display "001 ocm20885381" as:
- OCLC NO: ocm20885381
-
- R5: Substitute data in a field
- Parameters
- 0 "R5"
- 1 (decimal) field tag
- 2 data for first occurrence of MARC field
- 3 data for second occurrence of MARC field
- . .
- : :
- n data for n-1th occurrence of MARC field
-
- Example: HOLDINGS:@ | | R5!948!Check@at@ILL.@! | ~
- will display "948 $hLIBRARIES: STATE: LA LIBRARY: LMJ" as:
- HOLDINGS: Check at ILL.
-
- R6: Extract and format date based on contents of leader byte 7 and
- MARC field 008.
- Parameters
- 0 "R6"
- 1 (decimal) field tag (use 008)
-
- Example: YEAR:@ | | R7!008! | ~
- will cause dates to be formatted as:
- /07 008/6-14 display
- s d19041905 YEAR: 1904-1905
- s d181u18uu YEAR: 181u-18uu
- m i17651770 YEAR: 1765-1770
- m r19911926 YEAR: 1991, 1926
- m c19701958 YEAR: 1970, 1958
- m d198606 YEAR: June, 1986
- m s1903 YEAR: 1903
- s c19869999 YEAR: 1986
- m b YEAR:
-
- R7: Appends text string at the end of each subfield in a MARC field.
- Parameters
- 0 "R7"
- 1 (decimal) field tag
- 2 string to append to each subfield except the last
- in the MARC field
- 3 string to append to the last subfield in the MARC field
-
- Example: SUBJECT:@ | | R7!650!@--@!.! | ~
- will cause
- "650 $aUnited States $aHistory $yCivil War 1861-1865"
- to be formatted as:
- SUBJECT: United States -- History -- Civil War 1861-1865.
-
- Section 5: Creating a Z39.50 Database
- =====================================
- This section gives some pointers for finding a Z39.50 compatible
- server to put your data into, to allow you to search with Willow.
- The development of Z39.50 software is progressing quite rapidly, so
- the information in this section may be out of date by the time you
- read it.
-
- The best way to start looking for current Z39.50 information is to
- point your favorite WWW browser (i.e. Mosaic) at the Z39.50
- Resources page at URL:
- http://ds.internic.net/z3950/z3950.html
-
- As of this writing, there is no public domain z3950 search engine
- that is ready-to-use with Willow. The National Library of Canada
- has made their server code available, but it includes only the
- protocol engine -- you still have to integrate a search engine.
- There are commercial engines, like OCLC's Newton, but they tend to
- be fairly expensive for light-duty use.
-
- WAIS is an extremely popular database system that speaks Z39.50,
- however Willow speaks Z39.50 version 2 (1992), with some version 3
- (1994, draft) enhancements. WAIS-0.2 and WAIS-0.3 speak z39.50
- (1988), which is not compatible with version 2. There is a group at
- CNIDR that is working on a WAIS protocol engine (called ZDist) that
- understands Z39.50 (1992), but the software is still under
- development as of this writing. Once ZDist is complete, this will
- probably be the best solution for setting up your own
- Willow-compatible database. For the latest information, see the
- URL:
- http://cnidr.org/welcome.html
-
- It is theoretically possible to use any search engine with the ZDist
- api, if you are willing to do some programming. The ZDist
- pre-release code includes patches to integrate WAIS-0.3. We have
- been experimenting with this package, but there are still some
- problems with it and we don't have it working with Willow yet. Once
- ZDist has the bugs worked out, the intent is that you could use it
- to serve any existing WAIS database, and query the database with any
- 1992-compliant client.
-
- Following is some more (possibly dated) information from the ZDist
- developer.
-
- -----------------------------------------------------
- Date: Thu, 21 Jul 1994 14:59:08 -0400 (EDT)
- From: Kevin Gamiel <kgamiel@vinca.cnidr.org>
- Subject: Re: Z39.50 server software?
-
- ...
-
- Currently available is a pre-release of the [ZDist] client, server
- and HTTP gateway
- <ftp://ftp.cnidr.org/pub/NIDR.tools/zdist/pre1.tar.Z>.
-
- The protocol stack is interoperable with Willow and seems to
- communicate just fine. The server application, ZServer, also
- works with Willow with a few no-brainer patches included.
-
- The real work to be done with ZDist is in the stablization of our
- Search API (a generic search engine interface) and linking in a
- few example search engines. This is purely a timing problem with
- our limited programming resources (me).
-
- If you're willing to put in the effort, the pre-release mentioned
- provides everything one needs to put a Z39.50-1992 front-end onto
- existing WAIS databases. The process for doing so is documented
- in the release and involves the following (over simplified)
- procedure:
- 1) Install, build and test ZDist
- 2) Install freeWAIS-0.3 (for the search engine)
- 3) Integrate patches allowing ZServer to use the
- freeWAIS-0.3 search engine
- 4) Recompile ZServer to link with the freeWAIS-0.3 search
- engine
- 5) Edit zserver.ini file to "point" to any local WAIS
- database.
-
- Thats "all" there is to having a fully functional Z39.50-1992
- server with existing WAIS databases behind it!
-
- I welcome you all to join the ZIP-L mailing list, where ZDist is
- discussed:
-
- This distribution will be discussed via electronic mail on
- the ZIP list. To join, send mail to
- listserv@cnidr.org
- In the body of the message type
- subscribe zip-l Firstname Lastname
- where Firstname is your first name and Lastname is your
- last name as you would like it to appear on the
- subscription list.
-
- If we can generate some traffic on that list from interested
- parties, i.e. people actually trying to install and use ZDist, I
- would be more than happy to assist in the effort.
-
- Thank you for your continued patience and your cooperation in the
- future.
-
- Kevin
- ----------------------------------------------------------------------
- Kevin Gamiel - KEVIN.GAMIEL@CNIDR.ORG
- MCNC CNIDR - 919-248-1911
- Clearinghouse for Networked Information Discovery and Retrieval
-
- Proud charter member of
- Tar Heel Information Services - "Nothing but net!"
- -----------------------------------------------------------------------
-
-